package top.lixunda.books3.entity;

import java.util.ArrayList;
import java.util.List;

public class BookExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public BookExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Long value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Long value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Long value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Long value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Long value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Long value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Long> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Long> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Long value1, Long value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Long value1, Long value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andTitleIsNull() {
            addCriterion("title is null");
            return (Criteria) this;
        }

        public Criteria andTitleIsNotNull() {
            addCriterion("title is not null");
            return (Criteria) this;
        }

        public Criteria andTitleEqualTo(String value) {
            addCriterion("title =", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleNotEqualTo(String value) {
            addCriterion("title <>", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleGreaterThan(String value) {
            addCriterion("title >", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleGreaterThanOrEqualTo(String value) {
            addCriterion("title >=", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleLessThan(String value) {
            addCriterion("title <", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleLessThanOrEqualTo(String value) {
            addCriterion("title <=", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleLike(String value) {
            addCriterion("title like", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleNotLike(String value) {
            addCriterion("title not like", value, "title");
            return (Criteria) this;
        }

        public Criteria andTitleIn(List<String> values) {
            addCriterion("title in", values, "title");
            return (Criteria) this;
        }

        public Criteria andTitleNotIn(List<String> values) {
            addCriterion("title not in", values, "title");
            return (Criteria) this;
        }

        public Criteria andTitleBetween(String value1, String value2) {
            addCriterion("title between", value1, value2, "title");
            return (Criteria) this;
        }

        public Criteria andTitleNotBetween(String value1, String value2) {
            addCriterion("title not between", value1, value2, "title");
            return (Criteria) this;
        }

        public Criteria andSubtitleIsNull() {
            addCriterion("subtitle is null");
            return (Criteria) this;
        }

        public Criteria andSubtitleIsNotNull() {
            addCriterion("subtitle is not null");
            return (Criteria) this;
        }

        public Criteria andSubtitleEqualTo(String value) {
            addCriterion("subtitle =", value, "subtitle");
            return (Criteria) this;
        }

        public Criteria andSubtitleNotEqualTo(String value) {
            addCriterion("subtitle <>", value, "subtitle");
            return (Criteria) this;
        }

        public Criteria andSubtitleGreaterThan(String value) {
            addCriterion("subtitle >", value, "subtitle");
            return (Criteria) this;
        }

        public Criteria andSubtitleGreaterThanOrEqualTo(String value) {
            addCriterion("subtitle >=", value, "subtitle");
            return (Criteria) this;
        }

        public Criteria andSubtitleLessThan(String value) {
            addCriterion("subtitle <", value, "subtitle");
            return (Criteria) this;
        }

        public Criteria andSubtitleLessThanOrEqualTo(String value) {
            addCriterion("subtitle <=", value, "subtitle");
            return (Criteria) this;
        }

        public Criteria andSubtitleLike(String value) {
            addCriterion("subtitle like", value, "subtitle");
            return (Criteria) this;
        }

        public Criteria andSubtitleNotLike(String value) {
            addCriterion("subtitle not like", value, "subtitle");
            return (Criteria) this;
        }

        public Criteria andSubtitleIn(List<String> values) {
            addCriterion("subtitle in", values, "subtitle");
            return (Criteria) this;
        }

        public Criteria andSubtitleNotIn(List<String> values) {
            addCriterion("subtitle not in", values, "subtitle");
            return (Criteria) this;
        }

        public Criteria andSubtitleBetween(String value1, String value2) {
            addCriterion("subtitle between", value1, value2, "subtitle");
            return (Criteria) this;
        }

        public Criteria andSubtitleNotBetween(String value1, String value2) {
            addCriterion("subtitle not between", value1, value2, "subtitle");
            return (Criteria) this;
        }

        public Criteria andTagsIsNull() {
            addCriterion("tags is null");
            return (Criteria) this;
        }

        public Criteria andTagsIsNotNull() {
            addCriterion("tags is not null");
            return (Criteria) this;
        }

        public Criteria andTagsEqualTo(String value) {
            addCriterion("tags =", value, "tags");
            return (Criteria) this;
        }

        public Criteria andTagsNotEqualTo(String value) {
            addCriterion("tags <>", value, "tags");
            return (Criteria) this;
        }

        public Criteria andTagsGreaterThan(String value) {
            addCriterion("tags >", value, "tags");
            return (Criteria) this;
        }

        public Criteria andTagsGreaterThanOrEqualTo(String value) {
            addCriterion("tags >=", value, "tags");
            return (Criteria) this;
        }

        public Criteria andTagsLessThan(String value) {
            addCriterion("tags <", value, "tags");
            return (Criteria) this;
        }

        public Criteria andTagsLessThanOrEqualTo(String value) {
            addCriterion("tags <=", value, "tags");
            return (Criteria) this;
        }

        public Criteria andTagsLike(String value) {
            addCriterion("tags like", value, "tags");
            return (Criteria) this;
        }

        public Criteria andTagsNotLike(String value) {
            addCriterion("tags not like", value, "tags");
            return (Criteria) this;
        }

        public Criteria andTagsIn(List<String> values) {
            addCriterion("tags in", values, "tags");
            return (Criteria) this;
        }

        public Criteria andTagsNotIn(List<String> values) {
            addCriterion("tags not in", values, "tags");
            return (Criteria) this;
        }

        public Criteria andTagsBetween(String value1, String value2) {
            addCriterion("tags between", value1, value2, "tags");
            return (Criteria) this;
        }

        public Criteria andTagsNotBetween(String value1, String value2) {
            addCriterion("tags not between", value1, value2, "tags");
            return (Criteria) this;
        }

        public Criteria andTag1IsNull() {
            addCriterion("tag1 is null");
            return (Criteria) this;
        }

        public Criteria andTag1IsNotNull() {
            addCriterion("tag1 is not null");
            return (Criteria) this;
        }

        public Criteria andTag1EqualTo(String value) {
            addCriterion("tag1 =", value, "tag1");
            return (Criteria) this;
        }

        public Criteria andTag1NotEqualTo(String value) {
            addCriterion("tag1 <>", value, "tag1");
            return (Criteria) this;
        }

        public Criteria andTag1GreaterThan(String value) {
            addCriterion("tag1 >", value, "tag1");
            return (Criteria) this;
        }

        public Criteria andTag1GreaterThanOrEqualTo(String value) {
            addCriterion("tag1 >=", value, "tag1");
            return (Criteria) this;
        }

        public Criteria andTag1LessThan(String value) {
            addCriterion("tag1 <", value, "tag1");
            return (Criteria) this;
        }

        public Criteria andTag1LessThanOrEqualTo(String value) {
            addCriterion("tag1 <=", value, "tag1");
            return (Criteria) this;
        }

        public Criteria andTag1Like(String value) {
            addCriterion("tag1 like", value, "tag1");
            return (Criteria) this;
        }

        public Criteria andTag1NotLike(String value) {
            addCriterion("tag1 not like", value, "tag1");
            return (Criteria) this;
        }

        public Criteria andTag1In(List<String> values) {
            addCriterion("tag1 in", values, "tag1");
            return (Criteria) this;
        }

        public Criteria andTag1NotIn(List<String> values) {
            addCriterion("tag1 not in", values, "tag1");
            return (Criteria) this;
        }

        public Criteria andTag1Between(String value1, String value2) {
            addCriterion("tag1 between", value1, value2, "tag1");
            return (Criteria) this;
        }

        public Criteria andTag1NotBetween(String value1, String value2) {
            addCriterion("tag1 not between", value1, value2, "tag1");
            return (Criteria) this;
        }

        public Criteria andTranslatorIsNull() {
            addCriterion("translator is null");
            return (Criteria) this;
        }

        public Criteria andTranslatorIsNotNull() {
            addCriterion("translator is not null");
            return (Criteria) this;
        }

        public Criteria andTranslatorEqualTo(String value) {
            addCriterion("translator =", value, "translator");
            return (Criteria) this;
        }

        public Criteria andTranslatorNotEqualTo(String value) {
            addCriterion("translator <>", value, "translator");
            return (Criteria) this;
        }

        public Criteria andTranslatorGreaterThan(String value) {
            addCriterion("translator >", value, "translator");
            return (Criteria) this;
        }

        public Criteria andTranslatorGreaterThanOrEqualTo(String value) {
            addCriterion("translator >=", value, "translator");
            return (Criteria) this;
        }

        public Criteria andTranslatorLessThan(String value) {
            addCriterion("translator <", value, "translator");
            return (Criteria) this;
        }

        public Criteria andTranslatorLessThanOrEqualTo(String value) {
            addCriterion("translator <=", value, "translator");
            return (Criteria) this;
        }

        public Criteria andTranslatorLike(String value) {
            addCriterion("translator like", value, "translator");
            return (Criteria) this;
        }

        public Criteria andTranslatorNotLike(String value) {
            addCriterion("translator not like", value, "translator");
            return (Criteria) this;
        }

        public Criteria andTranslatorIn(List<String> values) {
            addCriterion("translator in", values, "translator");
            return (Criteria) this;
        }

        public Criteria andTranslatorNotIn(List<String> values) {
            addCriterion("translator not in", values, "translator");
            return (Criteria) this;
        }

        public Criteria andTranslatorBetween(String value1, String value2) {
            addCriterion("translator between", value1, value2, "translator");
            return (Criteria) this;
        }

        public Criteria andTranslatorNotBetween(String value1, String value2) {
            addCriterion("translator not between", value1, value2, "translator");
            return (Criteria) this;
        }

        public Criteria andPagesIsNull() {
            addCriterion("pages is null");
            return (Criteria) this;
        }

        public Criteria andPagesIsNotNull() {
            addCriterion("pages is not null");
            return (Criteria) this;
        }

        public Criteria andPagesEqualTo(String value) {
            addCriterion("pages =", value, "pages");
            return (Criteria) this;
        }

        public Criteria andPagesNotEqualTo(String value) {
            addCriterion("pages <>", value, "pages");
            return (Criteria) this;
        }

        public Criteria andPagesGreaterThan(String value) {
            addCriterion("pages >", value, "pages");
            return (Criteria) this;
        }

        public Criteria andPagesGreaterThanOrEqualTo(String value) {
            addCriterion("pages >=", value, "pages");
            return (Criteria) this;
        }

        public Criteria andPagesLessThan(String value) {
            addCriterion("pages <", value, "pages");
            return (Criteria) this;
        }

        public Criteria andPagesLessThanOrEqualTo(String value) {
            addCriterion("pages <=", value, "pages");
            return (Criteria) this;
        }

        public Criteria andPagesLike(String value) {
            addCriterion("pages like", value, "pages");
            return (Criteria) this;
        }

        public Criteria andPagesNotLike(String value) {
            addCriterion("pages not like", value, "pages");
            return (Criteria) this;
        }

        public Criteria andPagesIn(List<String> values) {
            addCriterion("pages in", values, "pages");
            return (Criteria) this;
        }

        public Criteria andPagesNotIn(List<String> values) {
            addCriterion("pages not in", values, "pages");
            return (Criteria) this;
        }

        public Criteria andPagesBetween(String value1, String value2) {
            addCriterion("pages between", value1, value2, "pages");
            return (Criteria) this;
        }

        public Criteria andPagesNotBetween(String value1, String value2) {
            addCriterion("pages not between", value1, value2, "pages");
            return (Criteria) this;
        }

        public Criteria andSmallImageIsNull() {
            addCriterion("smallImage is null");
            return (Criteria) this;
        }

        public Criteria andSmallImageIsNotNull() {
            addCriterion("smallImage is not null");
            return (Criteria) this;
        }

        public Criteria andSmallImageEqualTo(String value) {
            addCriterion("smallImage =", value, "smallImage");
            return (Criteria) this;
        }

        public Criteria andSmallImageNotEqualTo(String value) {
            addCriterion("smallImage <>", value, "smallImage");
            return (Criteria) this;
        }

        public Criteria andSmallImageGreaterThan(String value) {
            addCriterion("smallImage >", value, "smallImage");
            return (Criteria) this;
        }

        public Criteria andSmallImageGreaterThanOrEqualTo(String value) {
            addCriterion("smallImage >=", value, "smallImage");
            return (Criteria) this;
        }

        public Criteria andSmallImageLessThan(String value) {
            addCriterion("smallImage <", value, "smallImage");
            return (Criteria) this;
        }

        public Criteria andSmallImageLessThanOrEqualTo(String value) {
            addCriterion("smallImage <=", value, "smallImage");
            return (Criteria) this;
        }

        public Criteria andSmallImageLike(String value) {
            addCriterion("smallImage like", value, "smallImage");
            return (Criteria) this;
        }

        public Criteria andSmallImageNotLike(String value) {
            addCriterion("smallImage not like", value, "smallImage");
            return (Criteria) this;
        }

        public Criteria andSmallImageIn(List<String> values) {
            addCriterion("smallImage in", values, "smallImage");
            return (Criteria) this;
        }

        public Criteria andSmallImageNotIn(List<String> values) {
            addCriterion("smallImage not in", values, "smallImage");
            return (Criteria) this;
        }

        public Criteria andSmallImageBetween(String value1, String value2) {
            addCriterion("smallImage between", value1, value2, "smallImage");
            return (Criteria) this;
        }

        public Criteria andSmallImageNotBetween(String value1, String value2) {
            addCriterion("smallImage not between", value1, value2, "smallImage");
            return (Criteria) this;
        }

        public Criteria andMidiumImageIsNull() {
            addCriterion("midiumImage is null");
            return (Criteria) this;
        }

        public Criteria andMidiumImageIsNotNull() {
            addCriterion("midiumImage is not null");
            return (Criteria) this;
        }

        public Criteria andMidiumImageEqualTo(String value) {
            addCriterion("midiumImage =", value, "midiumImage");
            return (Criteria) this;
        }

        public Criteria andMidiumImageNotEqualTo(String value) {
            addCriterion("midiumImage <>", value, "midiumImage");
            return (Criteria) this;
        }

        public Criteria andMidiumImageGreaterThan(String value) {
            addCriterion("midiumImage >", value, "midiumImage");
            return (Criteria) this;
        }

        public Criteria andMidiumImageGreaterThanOrEqualTo(String value) {
            addCriterion("midiumImage >=", value, "midiumImage");
            return (Criteria) this;
        }

        public Criteria andMidiumImageLessThan(String value) {
            addCriterion("midiumImage <", value, "midiumImage");
            return (Criteria) this;
        }

        public Criteria andMidiumImageLessThanOrEqualTo(String value) {
            addCriterion("midiumImage <=", value, "midiumImage");
            return (Criteria) this;
        }

        public Criteria andMidiumImageLike(String value) {
            addCriterion("midiumImage like", value, "midiumImage");
            return (Criteria) this;
        }

        public Criteria andMidiumImageNotLike(String value) {
            addCriterion("midiumImage not like", value, "midiumImage");
            return (Criteria) this;
        }

        public Criteria andMidiumImageIn(List<String> values) {
            addCriterion("midiumImage in", values, "midiumImage");
            return (Criteria) this;
        }

        public Criteria andMidiumImageNotIn(List<String> values) {
            addCriterion("midiumImage not in", values, "midiumImage");
            return (Criteria) this;
        }

        public Criteria andMidiumImageBetween(String value1, String value2) {
            addCriterion("midiumImage between", value1, value2, "midiumImage");
            return (Criteria) this;
        }

        public Criteria andMidiumImageNotBetween(String value1, String value2) {
            addCriterion("midiumImage not between", value1, value2, "midiumImage");
            return (Criteria) this;
        }

        public Criteria andLargeImageIsNull() {
            addCriterion("largeImage is null");
            return (Criteria) this;
        }

        public Criteria andLargeImageIsNotNull() {
            addCriterion("largeImage is not null");
            return (Criteria) this;
        }

        public Criteria andLargeImageEqualTo(String value) {
            addCriterion("largeImage =", value, "largeImage");
            return (Criteria) this;
        }

        public Criteria andLargeImageNotEqualTo(String value) {
            addCriterion("largeImage <>", value, "largeImage");
            return (Criteria) this;
        }

        public Criteria andLargeImageGreaterThan(String value) {
            addCriterion("largeImage >", value, "largeImage");
            return (Criteria) this;
        }

        public Criteria andLargeImageGreaterThanOrEqualTo(String value) {
            addCriterion("largeImage >=", value, "largeImage");
            return (Criteria) this;
        }

        public Criteria andLargeImageLessThan(String value) {
            addCriterion("largeImage <", value, "largeImage");
            return (Criteria) this;
        }

        public Criteria andLargeImageLessThanOrEqualTo(String value) {
            addCriterion("largeImage <=", value, "largeImage");
            return (Criteria) this;
        }

        public Criteria andLargeImageLike(String value) {
            addCriterion("largeImage like", value, "largeImage");
            return (Criteria) this;
        }

        public Criteria andLargeImageNotLike(String value) {
            addCriterion("largeImage not like", value, "largeImage");
            return (Criteria) this;
        }

        public Criteria andLargeImageIn(List<String> values) {
            addCriterion("largeImage in", values, "largeImage");
            return (Criteria) this;
        }

        public Criteria andLargeImageNotIn(List<String> values) {
            addCriterion("largeImage not in", values, "largeImage");
            return (Criteria) this;
        }

        public Criteria andLargeImageBetween(String value1, String value2) {
            addCriterion("largeImage between", value1, value2, "largeImage");
            return (Criteria) this;
        }

        public Criteria andLargeImageNotBetween(String value1, String value2) {
            addCriterion("largeImage not between", value1, value2, "largeImage");
            return (Criteria) this;
        }

        public Criteria andPublisherIsNull() {
            addCriterion("publisher is null");
            return (Criteria) this;
        }

        public Criteria andPublisherIsNotNull() {
            addCriterion("publisher is not null");
            return (Criteria) this;
        }

        public Criteria andPublisherEqualTo(String value) {
            addCriterion("publisher =", value, "publisher");
            return (Criteria) this;
        }

        public Criteria andPublisherNotEqualTo(String value) {
            addCriterion("publisher <>", value, "publisher");
            return (Criteria) this;
        }

        public Criteria andPublisherGreaterThan(String value) {
            addCriterion("publisher >", value, "publisher");
            return (Criteria) this;
        }

        public Criteria andPublisherGreaterThanOrEqualTo(String value) {
            addCriterion("publisher >=", value, "publisher");
            return (Criteria) this;
        }

        public Criteria andPublisherLessThan(String value) {
            addCriterion("publisher <", value, "publisher");
            return (Criteria) this;
        }

        public Criteria andPublisherLessThanOrEqualTo(String value) {
            addCriterion("publisher <=", value, "publisher");
            return (Criteria) this;
        }

        public Criteria andPublisherLike(String value) {
            addCriterion("publisher like", value, "publisher");
            return (Criteria) this;
        }

        public Criteria andPublisherNotLike(String value) {
            addCriterion("publisher not like", value, "publisher");
            return (Criteria) this;
        }

        public Criteria andPublisherIn(List<String> values) {
            addCriterion("publisher in", values, "publisher");
            return (Criteria) this;
        }

        public Criteria andPublisherNotIn(List<String> values) {
            addCriterion("publisher not in", values, "publisher");
            return (Criteria) this;
        }

        public Criteria andPublisherBetween(String value1, String value2) {
            addCriterion("publisher between", value1, value2, "publisher");
            return (Criteria) this;
        }

        public Criteria andPublisherNotBetween(String value1, String value2) {
            addCriterion("publisher not between", value1, value2, "publisher");
            return (Criteria) this;
        }

        public Criteria andIsbn10IsNull() {
            addCriterion("isbn10 is null");
            return (Criteria) this;
        }

        public Criteria andIsbn10IsNotNull() {
            addCriterion("isbn10 is not null");
            return (Criteria) this;
        }

        public Criteria andIsbn10EqualTo(String value) {
            addCriterion("isbn10 =", value, "isbn10");
            return (Criteria) this;
        }

        public Criteria andIsbn10NotEqualTo(String value) {
            addCriterion("isbn10 <>", value, "isbn10");
            return (Criteria) this;
        }

        public Criteria andIsbn10GreaterThan(String value) {
            addCriterion("isbn10 >", value, "isbn10");
            return (Criteria) this;
        }

        public Criteria andIsbn10GreaterThanOrEqualTo(String value) {
            addCriterion("isbn10 >=", value, "isbn10");
            return (Criteria) this;
        }

        public Criteria andIsbn10LessThan(String value) {
            addCriterion("isbn10 <", value, "isbn10");
            return (Criteria) this;
        }

        public Criteria andIsbn10LessThanOrEqualTo(String value) {
            addCriterion("isbn10 <=", value, "isbn10");
            return (Criteria) this;
        }

        public Criteria andIsbn10Like(String value) {
            addCriterion("isbn10 like", value, "isbn10");
            return (Criteria) this;
        }

        public Criteria andIsbn10NotLike(String value) {
            addCriterion("isbn10 not like", value, "isbn10");
            return (Criteria) this;
        }

        public Criteria andIsbn10In(List<String> values) {
            addCriterion("isbn10 in", values, "isbn10");
            return (Criteria) this;
        }

        public Criteria andIsbn10NotIn(List<String> values) {
            addCriterion("isbn10 not in", values, "isbn10");
            return (Criteria) this;
        }

        public Criteria andIsbn10Between(String value1, String value2) {
            addCriterion("isbn10 between", value1, value2, "isbn10");
            return (Criteria) this;
        }

        public Criteria andIsbn10NotBetween(String value1, String value2) {
            addCriterion("isbn10 not between", value1, value2, "isbn10");
            return (Criteria) this;
        }

        public Criteria andIsbn13IsNull() {
            addCriterion("isbn13 is null");
            return (Criteria) this;
        }

        public Criteria andIsbn13IsNotNull() {
            addCriterion("isbn13 is not null");
            return (Criteria) this;
        }

        public Criteria andIsbn13EqualTo(String value) {
            addCriterion("isbn13 =", value, "isbn13");
            return (Criteria) this;
        }

        public Criteria andIsbn13NotEqualTo(String value) {
            addCriterion("isbn13 <>", value, "isbn13");
            return (Criteria) this;
        }

        public Criteria andIsbn13GreaterThan(String value) {
            addCriterion("isbn13 >", value, "isbn13");
            return (Criteria) this;
        }

        public Criteria andIsbn13GreaterThanOrEqualTo(String value) {
            addCriterion("isbn13 >=", value, "isbn13");
            return (Criteria) this;
        }

        public Criteria andIsbn13LessThan(String value) {
            addCriterion("isbn13 <", value, "isbn13");
            return (Criteria) this;
        }

        public Criteria andIsbn13LessThanOrEqualTo(String value) {
            addCriterion("isbn13 <=", value, "isbn13");
            return (Criteria) this;
        }

        public Criteria andIsbn13Like(String value) {
            addCriterion("isbn13 like", value, "isbn13");
            return (Criteria) this;
        }

        public Criteria andIsbn13NotLike(String value) {
            addCriterion("isbn13 not like", value, "isbn13");
            return (Criteria) this;
        }

        public Criteria andIsbn13In(List<String> values) {
            addCriterion("isbn13 in", values, "isbn13");
            return (Criteria) this;
        }

        public Criteria andIsbn13NotIn(List<String> values) {
            addCriterion("isbn13 not in", values, "isbn13");
            return (Criteria) this;
        }

        public Criteria andIsbn13Between(String value1, String value2) {
            addCriterion("isbn13 between", value1, value2, "isbn13");
            return (Criteria) this;
        }

        public Criteria andIsbn13NotBetween(String value1, String value2) {
            addCriterion("isbn13 not between", value1, value2, "isbn13");
            return (Criteria) this;
        }

        public Criteria andAuthorIsNull() {
            addCriterion("author is null");
            return (Criteria) this;
        }

        public Criteria andAuthorIsNotNull() {
            addCriterion("author is not null");
            return (Criteria) this;
        }

        public Criteria andAuthorEqualTo(String value) {
            addCriterion("author =", value, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorNotEqualTo(String value) {
            addCriterion("author <>", value, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorGreaterThan(String value) {
            addCriterion("author >", value, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorGreaterThanOrEqualTo(String value) {
            addCriterion("author >=", value, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorLessThan(String value) {
            addCriterion("author <", value, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorLessThanOrEqualTo(String value) {
            addCriterion("author <=", value, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorLike(String value) {
            addCriterion("author like", value, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorNotLike(String value) {
            addCriterion("author not like", value, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorIn(List<String> values) {
            addCriterion("author in", values, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorNotIn(List<String> values) {
            addCriterion("author not in", values, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorBetween(String value1, String value2) {
            addCriterion("author between", value1, value2, "author");
            return (Criteria) this;
        }

        public Criteria andAuthorNotBetween(String value1, String value2) {
            addCriterion("author not between", value1, value2, "author");
            return (Criteria) this;
        }

        public Criteria andPriceIsNull() {
            addCriterion("price is null");
            return (Criteria) this;
        }

        public Criteria andPriceIsNotNull() {
            addCriterion("price is not null");
            return (Criteria) this;
        }

        public Criteria andPriceEqualTo(String value) {
            addCriterion("price =", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceNotEqualTo(String value) {
            addCriterion("price <>", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceGreaterThan(String value) {
            addCriterion("price >", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceGreaterThanOrEqualTo(String value) {
            addCriterion("price >=", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceLessThan(String value) {
            addCriterion("price <", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceLessThanOrEqualTo(String value) {
            addCriterion("price <=", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceLike(String value) {
            addCriterion("price like", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceNotLike(String value) {
            addCriterion("price not like", value, "price");
            return (Criteria) this;
        }

        public Criteria andPriceIn(List<String> values) {
            addCriterion("price in", values, "price");
            return (Criteria) this;
        }

        public Criteria andPriceNotIn(List<String> values) {
            addCriterion("price not in", values, "price");
            return (Criteria) this;
        }

        public Criteria andPriceBetween(String value1, String value2) {
            addCriterion("price between", value1, value2, "price");
            return (Criteria) this;
        }

        public Criteria andPriceNotBetween(String value1, String value2) {
            addCriterion("price not between", value1, value2, "price");
            return (Criteria) this;
        }

        public Criteria andOriginIsNull() {
            addCriterion("origin is null");
            return (Criteria) this;
        }

        public Criteria andOriginIsNotNull() {
            addCriterion("origin is not null");
            return (Criteria) this;
        }

        public Criteria andOriginEqualTo(String value) {
            addCriterion("origin =", value, "origin");
            return (Criteria) this;
        }

        public Criteria andOriginNotEqualTo(String value) {
            addCriterion("origin <>", value, "origin");
            return (Criteria) this;
        }

        public Criteria andOriginGreaterThan(String value) {
            addCriterion("origin >", value, "origin");
            return (Criteria) this;
        }

        public Criteria andOriginGreaterThanOrEqualTo(String value) {
            addCriterion("origin >=", value, "origin");
            return (Criteria) this;
        }

        public Criteria andOriginLessThan(String value) {
            addCriterion("origin <", value, "origin");
            return (Criteria) this;
        }

        public Criteria andOriginLessThanOrEqualTo(String value) {
            addCriterion("origin <=", value, "origin");
            return (Criteria) this;
        }

        public Criteria andOriginLike(String value) {
            addCriterion("origin like", value, "origin");
            return (Criteria) this;
        }

        public Criteria andOriginNotLike(String value) {
            addCriterion("origin not like", value, "origin");
            return (Criteria) this;
        }

        public Criteria andOriginIn(List<String> values) {
            addCriterion("origin in", values, "origin");
            return (Criteria) this;
        }

        public Criteria andOriginNotIn(List<String> values) {
            addCriterion("origin not in", values, "origin");
            return (Criteria) this;
        }

        public Criteria andOriginBetween(String value1, String value2) {
            addCriterion("origin between", value1, value2, "origin");
            return (Criteria) this;
        }

        public Criteria andOriginNotBetween(String value1, String value2) {
            addCriterion("origin not between", value1, value2, "origin");
            return (Criteria) this;
        }

        public Criteria andCliIsNull() {
            addCriterion("cli is null");
            return (Criteria) this;
        }

        public Criteria andCliIsNotNull() {
            addCriterion("cli is not null");
            return (Criteria) this;
        }

        public Criteria andCliEqualTo(Long value) {
            addCriterion("cli =", value, "cli");
            return (Criteria) this;
        }

        public Criteria andCliNotEqualTo(Long value) {
            addCriterion("cli <>", value, "cli");
            return (Criteria) this;
        }

        public Criteria andCliGreaterThan(Long value) {
            addCriterion("cli >", value, "cli");
            return (Criteria) this;
        }

        public Criteria andCliGreaterThanOrEqualTo(Long value) {
            addCriterion("cli >=", value, "cli");
            return (Criteria) this;
        }

        public Criteria andCliLessThan(Long value) {
            addCriterion("cli <", value, "cli");
            return (Criteria) this;
        }

        public Criteria andCliLessThanOrEqualTo(Long value) {
            addCriterion("cli <=", value, "cli");
            return (Criteria) this;
        }

        public Criteria andCliIn(List<Long> values) {
            addCriterion("cli in", values, "cli");
            return (Criteria) this;
        }

        public Criteria andCliNotIn(List<Long> values) {
            addCriterion("cli not in", values, "cli");
            return (Criteria) this;
        }

        public Criteria andCliBetween(Long value1, Long value2) {
            addCriterion("cli between", value1, value2, "cli");
            return (Criteria) this;
        }

        public Criteria andCliNotBetween(Long value1, Long value2) {
            addCriterion("cli not between", value1, value2, "cli");
            return (Criteria) this;
        }

        public Criteria andTag2IsNull() {
            addCriterion("tag2 is null");
            return (Criteria) this;
        }

        public Criteria andTag2IsNotNull() {
            addCriterion("tag2 is not null");
            return (Criteria) this;
        }

        public Criteria andTag2EqualTo(String value) {
            addCriterion("tag2 =", value, "tag2");
            return (Criteria) this;
        }

        public Criteria andTag2NotEqualTo(String value) {
            addCriterion("tag2 <>", value, "tag2");
            return (Criteria) this;
        }

        public Criteria andTag2GreaterThan(String value) {
            addCriterion("tag2 >", value, "tag2");
            return (Criteria) this;
        }

        public Criteria andTag2GreaterThanOrEqualTo(String value) {
            addCriterion("tag2 >=", value, "tag2");
            return (Criteria) this;
        }

        public Criteria andTag2LessThan(String value) {
            addCriterion("tag2 <", value, "tag2");
            return (Criteria) this;
        }

        public Criteria andTag2LessThanOrEqualTo(String value) {
            addCriterion("tag2 <=", value, "tag2");
            return (Criteria) this;
        }

        public Criteria andTag2Like(String value) {
            addCriterion("tag2 like", value, "tag2");
            return (Criteria) this;
        }

        public Criteria andTag2NotLike(String value) {
            addCriterion("tag2 not like", value, "tag2");
            return (Criteria) this;
        }

        public Criteria andTag2In(List<String> values) {
            addCriterion("tag2 in", values, "tag2");
            return (Criteria) this;
        }

        public Criteria andTag2NotIn(List<String> values) {
            addCriterion("tag2 not in", values, "tag2");
            return (Criteria) this;
        }

        public Criteria andTag2Between(String value1, String value2) {
            addCriterion("tag2 between", value1, value2, "tag2");
            return (Criteria) this;
        }

        public Criteria andTag2NotBetween(String value1, String value2) {
            addCriterion("tag2 not between", value1, value2, "tag2");
            return (Criteria) this;
        }

        public Criteria andTag3IsNull() {
            addCriterion("tag3 is null");
            return (Criteria) this;
        }

        public Criteria andTag3IsNotNull() {
            addCriterion("tag3 is not null");
            return (Criteria) this;
        }

        public Criteria andTag3EqualTo(String value) {
            addCriterion("tag3 =", value, "tag3");
            return (Criteria) this;
        }

        public Criteria andTag3NotEqualTo(String value) {
            addCriterion("tag3 <>", value, "tag3");
            return (Criteria) this;
        }

        public Criteria andTag3GreaterThan(String value) {
            addCriterion("tag3 >", value, "tag3");
            return (Criteria) this;
        }

        public Criteria andTag3GreaterThanOrEqualTo(String value) {
            addCriterion("tag3 >=", value, "tag3");
            return (Criteria) this;
        }

        public Criteria andTag3LessThan(String value) {
            addCriterion("tag3 <", value, "tag3");
            return (Criteria) this;
        }

        public Criteria andTag3LessThanOrEqualTo(String value) {
            addCriterion("tag3 <=", value, "tag3");
            return (Criteria) this;
        }

        public Criteria andTag3Like(String value) {
            addCriterion("tag3 like", value, "tag3");
            return (Criteria) this;
        }

        public Criteria andTag3NotLike(String value) {
            addCriterion("tag3 not like", value, "tag3");
            return (Criteria) this;
        }

        public Criteria andTag3In(List<String> values) {
            addCriterion("tag3 in", values, "tag3");
            return (Criteria) this;
        }

        public Criteria andTag3NotIn(List<String> values) {
            addCriterion("tag3 not in", values, "tag3");
            return (Criteria) this;
        }

        public Criteria andTag3Between(String value1, String value2) {
            addCriterion("tag3 between", value1, value2, "tag3");
            return (Criteria) this;
        }

        public Criteria andTag3NotBetween(String value1, String value2) {
            addCriterion("tag3 not between", value1, value2, "tag3");
            return (Criteria) this;
        }

        public Criteria andTag4IsNull() {
            addCriterion("tag4 is null");
            return (Criteria) this;
        }

        public Criteria andTag4IsNotNull() {
            addCriterion("tag4 is not null");
            return (Criteria) this;
        }

        public Criteria andTag4EqualTo(String value) {
            addCriterion("tag4 =", value, "tag4");
            return (Criteria) this;
        }

        public Criteria andTag4NotEqualTo(String value) {
            addCriterion("tag4 <>", value, "tag4");
            return (Criteria) this;
        }

        public Criteria andTag4GreaterThan(String value) {
            addCriterion("tag4 >", value, "tag4");
            return (Criteria) this;
        }

        public Criteria andTag4GreaterThanOrEqualTo(String value) {
            addCriterion("tag4 >=", value, "tag4");
            return (Criteria) this;
        }

        public Criteria andTag4LessThan(String value) {
            addCriterion("tag4 <", value, "tag4");
            return (Criteria) this;
        }

        public Criteria andTag4LessThanOrEqualTo(String value) {
            addCriterion("tag4 <=", value, "tag4");
            return (Criteria) this;
        }

        public Criteria andTag4Like(String value) {
            addCriterion("tag4 like", value, "tag4");
            return (Criteria) this;
        }

        public Criteria andTag4NotLike(String value) {
            addCriterion("tag4 not like", value, "tag4");
            return (Criteria) this;
        }

        public Criteria andTag4In(List<String> values) {
            addCriterion("tag4 in", values, "tag4");
            return (Criteria) this;
        }

        public Criteria andTag4NotIn(List<String> values) {
            addCriterion("tag4 not in", values, "tag4");
            return (Criteria) this;
        }

        public Criteria andTag4Between(String value1, String value2) {
            addCriterion("tag4 between", value1, value2, "tag4");
            return (Criteria) this;
        }

        public Criteria andTag4NotBetween(String value1, String value2) {
            addCriterion("tag4 not between", value1, value2, "tag4");
            return (Criteria) this;
        }

        public Criteria andTag5IsNull() {
            addCriterion("tag5 is null");
            return (Criteria) this;
        }

        public Criteria andTag5IsNotNull() {
            addCriterion("tag5 is not null");
            return (Criteria) this;
        }

        public Criteria andTag5EqualTo(String value) {
            addCriterion("tag5 =", value, "tag5");
            return (Criteria) this;
        }

        public Criteria andTag5NotEqualTo(String value) {
            addCriterion("tag5 <>", value, "tag5");
            return (Criteria) this;
        }

        public Criteria andTag5GreaterThan(String value) {
            addCriterion("tag5 >", value, "tag5");
            return (Criteria) this;
        }

        public Criteria andTag5GreaterThanOrEqualTo(String value) {
            addCriterion("tag5 >=", value, "tag5");
            return (Criteria) this;
        }

        public Criteria andTag5LessThan(String value) {
            addCriterion("tag5 <", value, "tag5");
            return (Criteria) this;
        }

        public Criteria andTag5LessThanOrEqualTo(String value) {
            addCriterion("tag5 <=", value, "tag5");
            return (Criteria) this;
        }

        public Criteria andTag5Like(String value) {
            addCriterion("tag5 like", value, "tag5");
            return (Criteria) this;
        }

        public Criteria andTag5NotLike(String value) {
            addCriterion("tag5 not like", value, "tag5");
            return (Criteria) this;
        }

        public Criteria andTag5In(List<String> values) {
            addCriterion("tag5 in", values, "tag5");
            return (Criteria) this;
        }

        public Criteria andTag5NotIn(List<String> values) {
            addCriterion("tag5 not in", values, "tag5");
            return (Criteria) this;
        }

        public Criteria andTag5Between(String value1, String value2) {
            addCriterion("tag5 between", value1, value2, "tag5");
            return (Criteria) this;
        }

        public Criteria andTag5NotBetween(String value1, String value2) {
            addCriterion("tag5 not between", value1, value2, "tag5");
            return (Criteria) this;
        }

        public Criteria andTag6IsNull() {
            addCriterion("tag6 is null");
            return (Criteria) this;
        }

        public Criteria andTag6IsNotNull() {
            addCriterion("tag6 is not null");
            return (Criteria) this;
        }

        public Criteria andTag6EqualTo(String value) {
            addCriterion("tag6 =", value, "tag6");
            return (Criteria) this;
        }

        public Criteria andTag6NotEqualTo(String value) {
            addCriterion("tag6 <>", value, "tag6");
            return (Criteria) this;
        }

        public Criteria andTag6GreaterThan(String value) {
            addCriterion("tag6 >", value, "tag6");
            return (Criteria) this;
        }

        public Criteria andTag6GreaterThanOrEqualTo(String value) {
            addCriterion("tag6 >=", value, "tag6");
            return (Criteria) this;
        }

        public Criteria andTag6LessThan(String value) {
            addCriterion("tag6 <", value, "tag6");
            return (Criteria) this;
        }

        public Criteria andTag6LessThanOrEqualTo(String value) {
            addCriterion("tag6 <=", value, "tag6");
            return (Criteria) this;
        }

        public Criteria andTag6Like(String value) {
            addCriterion("tag6 like", value, "tag6");
            return (Criteria) this;
        }

        public Criteria andTag6NotLike(String value) {
            addCriterion("tag6 not like", value, "tag6");
            return (Criteria) this;
        }

        public Criteria andTag6In(List<String> values) {
            addCriterion("tag6 in", values, "tag6");
            return (Criteria) this;
        }

        public Criteria andTag6NotIn(List<String> values) {
            addCriterion("tag6 not in", values, "tag6");
            return (Criteria) this;
        }

        public Criteria andTag6Between(String value1, String value2) {
            addCriterion("tag6 between", value1, value2, "tag6");
            return (Criteria) this;
        }

        public Criteria andTag6NotBetween(String value1, String value2) {
            addCriterion("tag6 not between", value1, value2, "tag6");
            return (Criteria) this;
        }

        public Criteria andTag7IsNull() {
            addCriterion("tag7 is null");
            return (Criteria) this;
        }

        public Criteria andTag7IsNotNull() {
            addCriterion("tag7 is not null");
            return (Criteria) this;
        }

        public Criteria andTag7EqualTo(String value) {
            addCriterion("tag7 =", value, "tag7");
            return (Criteria) this;
        }

        public Criteria andTag7NotEqualTo(String value) {
            addCriterion("tag7 <>", value, "tag7");
            return (Criteria) this;
        }

        public Criteria andTag7GreaterThan(String value) {
            addCriterion("tag7 >", value, "tag7");
            return (Criteria) this;
        }

        public Criteria andTag7GreaterThanOrEqualTo(String value) {
            addCriterion("tag7 >=", value, "tag7");
            return (Criteria) this;
        }

        public Criteria andTag7LessThan(String value) {
            addCriterion("tag7 <", value, "tag7");
            return (Criteria) this;
        }

        public Criteria andTag7LessThanOrEqualTo(String value) {
            addCriterion("tag7 <=", value, "tag7");
            return (Criteria) this;
        }

        public Criteria andTag7Like(String value) {
            addCriterion("tag7 like", value, "tag7");
            return (Criteria) this;
        }

        public Criteria andTag7NotLike(String value) {
            addCriterion("tag7 not like", value, "tag7");
            return (Criteria) this;
        }

        public Criteria andTag7In(List<String> values) {
            addCriterion("tag7 in", values, "tag7");
            return (Criteria) this;
        }

        public Criteria andTag7NotIn(List<String> values) {
            addCriterion("tag7 not in", values, "tag7");
            return (Criteria) this;
        }

        public Criteria andTag7Between(String value1, String value2) {
            addCriterion("tag7 between", value1, value2, "tag7");
            return (Criteria) this;
        }

        public Criteria andTag7NotBetween(String value1, String value2) {
            addCriterion("tag7 not between", value1, value2, "tag7");
            return (Criteria) this;
        }

        public Criteria andTag8IsNull() {
            addCriterion("tag8 is null");
            return (Criteria) this;
        }

        public Criteria andTag8IsNotNull() {
            addCriterion("tag8 is not null");
            return (Criteria) this;
        }

        public Criteria andTag8EqualTo(String value) {
            addCriterion("tag8 =", value, "tag8");
            return (Criteria) this;
        }

        public Criteria andTag8NotEqualTo(String value) {
            addCriterion("tag8 <>", value, "tag8");
            return (Criteria) this;
        }

        public Criteria andTag8GreaterThan(String value) {
            addCriterion("tag8 >", value, "tag8");
            return (Criteria) this;
        }

        public Criteria andTag8GreaterThanOrEqualTo(String value) {
            addCriterion("tag8 >=", value, "tag8");
            return (Criteria) this;
        }

        public Criteria andTag8LessThan(String value) {
            addCriterion("tag8 <", value, "tag8");
            return (Criteria) this;
        }

        public Criteria andTag8LessThanOrEqualTo(String value) {
            addCriterion("tag8 <=", value, "tag8");
            return (Criteria) this;
        }

        public Criteria andTag8Like(String value) {
            addCriterion("tag8 like", value, "tag8");
            return (Criteria) this;
        }

        public Criteria andTag8NotLike(String value) {
            addCriterion("tag8 not like", value, "tag8");
            return (Criteria) this;
        }

        public Criteria andTag8In(List<String> values) {
            addCriterion("tag8 in", values, "tag8");
            return (Criteria) this;
        }

        public Criteria andTag8NotIn(List<String> values) {
            addCriterion("tag8 not in", values, "tag8");
            return (Criteria) this;
        }

        public Criteria andTag8Between(String value1, String value2) {
            addCriterion("tag8 between", value1, value2, "tag8");
            return (Criteria) this;
        }

        public Criteria andTag8NotBetween(String value1, String value2) {
            addCriterion("tag8 not between", value1, value2, "tag8");
            return (Criteria) this;
        }

        public Criteria andPubdateIsNull() {
            addCriterion("pubdate is null");
            return (Criteria) this;
        }

        public Criteria andPubdateIsNotNull() {
            addCriterion("pubdate is not null");
            return (Criteria) this;
        }

        public Criteria andPubdateEqualTo(String value) {
            addCriterion("pubdate =", value, "pubdate");
            return (Criteria) this;
        }

        public Criteria andPubdateNotEqualTo(String value) {
            addCriterion("pubdate <>", value, "pubdate");
            return (Criteria) this;
        }

        public Criteria andPubdateGreaterThan(String value) {
            addCriterion("pubdate >", value, "pubdate");
            return (Criteria) this;
        }

        public Criteria andPubdateGreaterThanOrEqualTo(String value) {
            addCriterion("pubdate >=", value, "pubdate");
            return (Criteria) this;
        }

        public Criteria andPubdateLessThan(String value) {
            addCriterion("pubdate <", value, "pubdate");
            return (Criteria) this;
        }

        public Criteria andPubdateLessThanOrEqualTo(String value) {
            addCriterion("pubdate <=", value, "pubdate");
            return (Criteria) this;
        }

        public Criteria andPubdateLike(String value) {
            addCriterion("pubdate like", value, "pubdate");
            return (Criteria) this;
        }

        public Criteria andPubdateNotLike(String value) {
            addCriterion("pubdate not like", value, "pubdate");
            return (Criteria) this;
        }

        public Criteria andPubdateIn(List<String> values) {
            addCriterion("pubdate in", values, "pubdate");
            return (Criteria) this;
        }

        public Criteria andPubdateNotIn(List<String> values) {
            addCriterion("pubdate not in", values, "pubdate");
            return (Criteria) this;
        }

        public Criteria andPubdateBetween(String value1, String value2) {
            addCriterion("pubdate between", value1, value2, "pubdate");
            return (Criteria) this;
        }

        public Criteria andPubdateNotBetween(String value1, String value2) {
            addCriterion("pubdate not between", value1, value2, "pubdate");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}